<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <!-- 模板逻辑过重 -->
      <h2>{{msg.split('').reverse().join('')}}</h2>
      <h1>{{reverseMsg}}</h1>
    </div>
  </body>
</html>
<script src="http://chst.vip:8081/vue.js"></script>
<script>
  //computed 解决模板逻辑过重问题，可以数据进行预处理
  //   computed中的函数名可以像data中的数据一样使用
  const vm = new Vue({
    el: "#app",
    data: {
      msg: "好好学习天天向上",
    },
    computed: {
      // 函数的名字就是计算属性的名字
      // return的结果就是属性的值

      //computed的特性
      //1、计算的结果会缓存
      //2、根据外界响应式依赖发生变化而变化
      reverseMsg() {
        return this.msg.split("").reverse().join("");
      },
      // 启用计算属性的setter   了解不常用
      //   reverseMsg: {
      //     get() {
      //       //读取 根据外界响应式依赖计算自身的结果
      //       return this.msg.split("").reverse().join("");
      //     },
      //     set(val) {
      //       console.log("======" + val);
      //     //   根据输入的内容，修改外界的值
      //       this.msg = val;
      //     },
      //   },
    },
  });
</script>
